VBA তে চার্ট ফরম্যাটিং এবং কাস্টমাইজেশন
VBA (Visual Basic for Applications) তে Chart Formatting এবং Customization এর মাধ্যমে আপনি এক্সেল শিটে তৈরি করা চার্টগুলোর ডিজাইন, লেবেল, কালার, এবং অন্যান্য বৈশিষ্ট্য পরিবর্তন করতে পারেন। এটি ব্যবহারকারীর প্রয়োজন অনুসারে চার্টের রূপ ও আচরণ কাস্টমাইজ করার একটি শক্তিশালী উপায়।
Chart Formatting এবং Customization এর মূল উপাদান
- Chart Object: চার্টটি একটি অবজেক্ট, এবং এটি Charts বা ChartObjects এর মাধ্যমে অ্যাক্সেস করা হয়।
- Chart Elements: চার্টের মধ্যে বিভিন্ন উপাদান রয়েছে যেমন টাইটেল, অ্যাক্সিস, লিজেন্ড, ডাটা সিরিজ, চার্ট এরিয়া ইত্যাদি।
- Chart Methods: আপনি চার্টের বিভিন্ন বৈশিষ্ট্য পরিবর্তন করতে Methods ব্যবহার করতে পারেন (যেমন HasTitle, Axes, Legend, ChartArea ইত্যাদি)।
Chart Formatting এর সাধারণ ধাপগুলো
- Chart তৈরি করা:
প্রথমে, আপনি একটি চার্ট তৈরি করতে হবে যা আপনার ডেটা সেটের উপর ভিত্তি করে। - Chart Elements কাস্টমাইজ করা:
চার্টের বিভিন্ন অংশ যেমন Title, Axes, Legend, Data Labels ইত্যাদি কাস্টমাইজ করা। - Chart Style এবং Colors কাস্টমাইজ করা:
বিভিন্ন স্টাইল, কালার থিম এবং ডাটা সিরিজের রঙ পরিবর্তন করা।
1. Chart তৈরি করা
প্রথমে একটি চার্ট তৈরি করা যাক, তারপর তার বিভিন্ন উপাদান কাস্টমাইজ করা হবে।
Sub CreateChart()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' ডেটার রেঞ্জ নির্বাচন করে চার্ট তৈরি করা
Dim chart As ChartObject
Set chart = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300)
' চার্টের ডেটা রেঞ্জ সেট করা
chart.Chart.SetSourceData Source:=ws.Range("A1:B5")
' চার্টের টাইপ সেট করা (Column Chart)
chart.Chart.ChartType = xlColumnClustered
End Subএখানে:
- ChartObjects.Add দিয়ে চার্ট তৈরি করা হয়েছে।
- SetSourceData দিয়ে চার্টে ডেটার রেঞ্জ সেট করা হয়েছে।
- ChartType দিয়ে চার্টের ধরন Clustered Column Chart সেট করা হয়েছে।
2. Chart Title এবং Axes কাস্টমাইজেশন
Chart Title পরিবর্তন করা:
Sub FormatChartTitle()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1) ' প্রথম চার্ট সিলেক্ট করা
' চার্টের টাইটেল সেট করা
chart.Chart.HasTitle = True
chart.Chart.ChartTitle.Text = "Sales Data"
' টাইটেল ফন্ট এবং সাইজ কাস্টমাইজ করা
chart.Chart.ChartTitle.Font.Size = 14
chart.Chart.ChartTitle.Font.Bold = True
End Subএখানে:
- HasTitle দিয়ে চার্টের টাইটেল চালু করা হয়েছে।
- ChartTitle.Text দিয়ে টাইটেলের টেক্সট সেট করা হয়েছে।
- Font.Size এবং Font.Bold দিয়ে টাইটেলের ফন্ট সাইজ এবং স্টাইল কাস্টমাইজ করা হয়েছে।
Axes (অ্যাক্সিস) কাস্টমাইজ করা:
Sub FormatChartAxes()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1) ' প্রথম চার্ট সিলেক্ট করা
' X এবং Y অ্যাক্সিস কাস্টমাইজ করা
With chart.Chart.Axes(xlCategory) ' X-Axis কাস্টমাইজ
.HasTitle = True
.AxisTitle.Text = "Months"
.AxisTitle.Font.Size = 12
End With
With chart.Chart.Axes(xlValue) ' Y-Axis কাস্টমাইজ
.HasTitle = True
.AxisTitle.Text = "Revenue"
.AxisTitle.Font.Size = 12
End With
End Subএখানে:
- Axes(xlCategory) এবং Axes(xlValue) দিয়ে X এবং Y অ্যাক্সিসের প্রপার্টি অ্যাক্সেস করা হয়েছে।
- AxisTitle.Text এবং AxisTitle.Font.Size দিয়ে অ্যাক্সিস টাইটেল কাস্টমাইজ করা হয়েছে।
3. Chart Data Series কাস্টমাইজেশন
Data Series এর রঙ পরিবর্তন করা:
Sub FormatDataSeries()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1) ' প্রথম চার্ট সিলেক্ট করা
' ডাটা সিরিজের রঙ পরিবর্তন করা
chart.Chart.SeriesCollection(1).Interior.Color = RGB(255, 0, 0) ' লাল
chart.Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 0, 255) ' নীল
End Subএখানে:
- SeriesCollection(1) ব্যবহার করে প্রথম ডাটা সিরিজ নির্বাচন করা হয়েছে এবং Interior.Color বা Format.Fill.ForeColor.RGB দিয়ে ডাটা সিরিজের রঙ পরিবর্তন করা হয়েছে।
Data Labels যোগ করা:
Sub AddDataLabels()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1)
' ডাটা সিরিজের ডাটা লেবেল যোগ করা
chart.Chart.SeriesCollection(1).HasDataLabels = True
chart.Chart.SeriesCollection(1).DataLabels.ShowValue = True
End Subএখানে:
- HasDataLabels দিয়ে ডাটা লেবেল সক্রিয় করা হয়েছে এবং DataLabels.ShowValue দিয়ে ডাটা ভ্যালু দেখানো হয়েছে।
4. Chart Style এবং Theme কাস্টমাইজেশন
Chart Style পরিবর্তন করা:
Sub ChangeChartStyle()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1)
' চার্ট স্টাইল পরিবর্তন করা (1 থেকে 48 পর্যন্ত স্টাইল আছে)
chart.Chart.ChartStyle = 4
End Subএখানে:
- ChartStyle ব্যবহার করে চার্টের স্টাইল পরিবর্তন করা হয়েছে। ChartStyle এর মান 1 থেকে 48 এর মধ্যে হতে পারে।
Chart Theme পরিবর্তন করা:
Sub ChangeChartTheme()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1)
' চার্ট থিম পরিবর্তন করা
chart.Chart.ApplyChartStyle (17) ' থিম 17 প্রয়োগ
End Subএখানে:
- ApplyChartStyle ব্যবহার করে একটি নির্দিষ্ট থিম প্রয়োগ করা হয়েছে। এখানে 17 হল একটি নির্দিষ্ট থিমের আইডি।
5. Chart Legend কাস্টমাইজেশন
Legend (লিজেন্ড) লুকানো এবং কাস্টমাইজ করা:
Sub FormatChartLegend()
Dim chart As ChartObject
Set chart = ActiveSheet.ChartObjects(1)
' লিজেন্ড হিড করা
chart.Chart.HasLegend = True
chart.Chart.Legend.Position = xlLegendPositionRight ' রাইট সাইডে লিজেন্ড
chart.Chart.Legend.Font.Size = 10 ' লিজেন্ড ফন্ট সাইজ
End Subএখানে:
- HasLegend ব্যবহার করে লিজেন্ড দেখানো বা লুকানো হয়েছে।
- Legend.Position দিয়ে লিজেন্ডের অবস্থান পরিবর্তন করা হয়েছে (যেমন xlLegendPositionRight ডান দিকে)।
- Legend.Font.Size দিয়ে লিজেন্ডের ফন্ট সাইজ পরিবর্তন করা হয়েছে।
উপসংহার
VBA তে Chart Formatting এবং Customization এর মাধ্যমে আপনি চার্টের টাইটেল, অ্যাক্সিস, ডাটা সিরিজ, ফন্ট, কালার এবং স্টাইল ইত্যাদি কাস্টমাইজ করতে পারেন। এটি আপনাকে এক্সেল শিটে আরও ইন্টারেক্টিভ, পাঠযোগ্য এবং সুন্দর চার্ট তৈরি করতে সহায়ক। Charts কে কাস্টমাইজ করে আপনি আপনার ডেটা ভিজ্যুয়ালাইজেশন আরও প্রাঞ্জল এবং তথ্যপূর্ণ করতে পারেন।
Read more